﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using BDSUETableAdapters;

using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
    //Es el nit de la empresa que realizara la solicitud.
    String empresa_nit;

    protected void Page_Load(object sender, EventArgs e)
    {
        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
        if (Session["nit"] != null)
        { }
        // Response.Redirect("/SUEWebSite/Principal.aspx");    

        else if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");

        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");

        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------      

        empresa_nit = Request.QueryString["Empresa_nit"];
    }

    void EnviarNotificacionesAutomaticas(int idSolicitud)
    {
        GestionNotificaciones gN = new GestionNotificaciones();
        //Envio las notificaciones automaticas para que sepan que se envio una nueva solicitud
        //Primero verifico quien la esta enviando, si es una empresa o un usuario.

        //Construyo la info que va a llevar la solicitud:
        String descripcion = string.Empty;

        Empresa emp = new Empresa();
        emp = emp.BuscarUnicaEmp(empresa_nit);
        SolicitudPractica sol = new SolicitudPractica();
        sol = sol.ObtSolicitudPorId(idSolicitud);

        descripcion += string.Format("Fecha Envio   : {0}\n", sol.ObtFechaCreacion());
        //descripcion += String.Format("Estado de la Solicitud: {0}\n", sol.ObtEstado());

        descripcion += String.Format("Nit Empresa   : {0}\n", emp.ObtNit());
        descripcion += String.Format("Nombre Empresa: {0}\n", emp.ObtNombre());
        descripcion += String.Format("Sector Empresa: {0}\n\n", emp.ObtSectorEmp());

        descripcion += "Descripcion\n\r";
        descripcion += sol.ObtDescripcionProyecto().ToString();
        descripcion += "...";

        if (Session["nomUsr"] != null)
        {
            //Es un usuario el que la esta enviando
            gN.CrearNotificacion(Session["nomUsr"].ToString(), emp.ObtNombreUsuario(), "Nueva Solicitud de Practica", descripcion);
        }
        else
        {
            if (Session["nomUsEmp"] != null)
            {
                Usuario tmp = new Usuario();
                List<Usuario> usuarios = tmp.ConsultarUsuariosPorRol("coordinador");
                foreach(Usuario usuarioCoord in usuarios)
                    gN.CrearNotificacion(Session["nomUsEmp"].ToString(), usuarioCoord.ObtNombreUsuario(), "Nueva Solicitud de Practica", descripcion);
            }
        }
    }

    public void MessageBoxJS(string msg)
    {
        StringBuilder str = new StringBuilder("<script languaje = JavaScript>");
        str.Append("alert('" + msg + "');");
        str.Append("</script>");
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "PopUpScript", str.ToString());

    }

    protected void ButtonEnviarSolicitud_Click(object sender, EventArgs e)
    {
        String redireccionamiento = "SolicitudesPractica/FormGestionarSolicitudes.aspx";
        if (Session["nit"] != null)
        {
            empresa_nit = Session["nit"].ToString();
            redireccionamiento = "Principal.aspx";
        }
        //(int idSolicitud, string Empresa_nit, int estado, string observaciones,string descripcionProyecto, string nombreContacto, string cargoContacto,string telefonoContacto, string celularContacto, string emailContacto)
        if (empresa_nit != null)
        {
            //NO SE USO EL DE LA CLASE SOLICITUD PARA CREAR PORQUE NO DEVUELVE EL ID DE LA SOLICITUD
            //SolicitudPractica nuevaSol = new SolicitudPractica(0, empresa_nit, 0, "", "", TextBoxDescripcion.Text, TextBoxNombre.Text, TextBoxCargo.Text, TextBoxTelefono.Text, TextBoxCelular.Text, TextBoxCorreo.Text, TextBoxFax.Text);
            //nuevaSol.GuardarSolicitud();

            //Se uso un TableAdapter  para solicitud.
            SolicitudPracticaTableAdapter sA = new SolicitudPracticaTableAdapter();
            object idSolicitud = sA.InsertQuerySolicitudPractica(empresa_nit, 0, DateTime.Now.ToString(), "", TextBoxDescripcion.Text, TextBoxNombre.Text, TextBoxCargo.Text, TextBoxTelefono.Text, TextBoxCelular.Text, TextBoxCorreo.Text, TextBoxFax.Text);
            if (Convert.ToInt32(idSolicitud) != 0)
            {
                //Muestro un mensaje diciendo que se envio la solicitud.
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('La solicitud ha sido enviada con éxito <br /><div align=\"center\"><a href=\"../" + redireccionamiento + "\"><img src=\"../images/ok2.png\"/></a></div>');", true);
                EnviarNotificacionesAutomaticas(Convert.ToInt32(idSolicitud));
            }
        }
        else
        {
            MessageBoxJS("Error 01: Su solicitud no pudo ser enviada debido a un error interno.");
        }
    }
}
